/**
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved. <br/>
 * 描述: TODO <br/>
 *
 * @author framework generator
 * @date 2022年06月17日
 * @version 2.0
 */
package com.icinfo.cloud.provider.punish.ucase.casemain.mapper;

import com.icinfo.cloud.provider.punish.ucase.casemain.dto.CaseRelatedAppDocumentPageQueryDto;
import com.icinfo.cloud.provider.punish.ucase.casemain.model.CaseRelatedDocumentRecord;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.CaseRelatedAppDocumentVo;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.CaseStageLinkRelateDocumentVo;
import com.icinfo.cloud.provider.punish.ucase.caseregister.dto.CaseRelateDocumentInfoDto;
import com.icinfo.framework.mybatis.mapper.common.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 描述: 案件关联文书记录表 case_related_document_record 对应的Mapper接口.<br>
 *
 * @author framework generator
 * @date 2022年06月17日
 */
public interface CaseRelatedDocumentRecordMapper extends Mapper<CaseRelatedDocumentRecord> {
    /**
     * 描述：根据办案人员和当事人code,查询没被关联的文书列表
     *
     * @param queryDto 查询dto
     * @return {@link List<CaseRelatedAppDocumentVo> }
     * @author shishengyao
     * @date 2022/06/20
     */
    List<CaseRelatedAppDocumentVo> selectNotRelatedDocumentRecordList(CaseRelatedAppDocumentPageQueryDto queryDto);

    /**
     * 描述：获取通过"关联文书"渠道的案件关联文书信息
     *
     * @param caseId 案件id
     * @return List<CaseStageLinkRelateDocumentVo> 转换后的案件阶段关联文书信息
     * @author xiangyuyu
     * @date 2022-06-29 20:43
     */
    List<CaseStageLinkRelateDocumentVo> selectRelatedDocInfoToCaseStageLinkRelateDocument(@Param("caseId") String caseId);

    /**
     * 描述：查询案件阶段关联文书
     *
     * @param documentId 文档id
     * @return {@link List<CaseRelatedAppDocumentVo> }
     * @author shishengyao
     * @date 2023/08/21
     */
    CaseRelatedAppDocumentVo selectCaseRelateDocumentInfoDtoByDocumentId(@Param("documentId") String documentId);


    /**
     * 描述：查询案件阶段关联文书
     *
     * @param caseId           用例id
     * @param documentKindCode 文件类型代码
     * @param caseStageCode    情况下阶段代码
     * @return {@link List<CaseRelateDocumentInfoDto> }
     * @author shishengyao
     * @date 2023/08/17
     */
    List<CaseRelateDocumentInfoDto> selectCaseRelateDocumentInfoDto(@Param("caseId") String caseId,@Param("documentKindCode") String documentKindCode,@Param("caseStageCode") String caseStageCode);

}
